package com.example.xyr.myapplication.base;

import android.support.v7.widget.RecyclerView;

import java.util.ArrayList;
import java.util.List;

/**
 * @创建人 honglin
 * @创建时间 2018/4/24 下午5:50
 * @类描述 一句话描述 你的UI
 */
public abstract class RVBaseAdapter<T, H extends RVBaseHolder> extends RecyclerView.Adapter<H> {

    protected List<T> mDatas;


    @Override
    public void onBindViewHolder(H holder, int position) {
        holder.onBind(holder, holder.getAdapterPosition());
    }

    @Override
    public int getItemCount() {
        return mDatas == null ? 0 : mDatas.size();
    }

    /**
     * 设置数据，之前的数据清空
     *
     * @param data
     */
    public void setmDatas(List<T> data) {
        if (mDatas == null) {
            mDatas = new ArrayList<>();
        }
        if (mDatas.size() > 0) {
            mDatas.clear();
        }
        mDatas.addAll(data);
        notifyDataSetChanged();
    }

    public void clearData() {
        if (mDatas == null) {
            mDatas = new ArrayList<>();
        }
        if (mDatas.size() > 0) {
            mDatas.clear();
        }
        notifyDataSetChanged();
    }

    /**
     * 在原有的基础上增加数据
     *
     * @param data
     */
    public void addData(List<T> data) {
        if (mDatas == null) {
            mDatas = new ArrayList<>();
        }
        mDatas.addAll(0, data);
        notifyDataSetChanged();
    }

    public void addItems(List<T> data) {
        if (mDatas == null) {
            mDatas = new ArrayList<>();
        }
        if (data != null && data.size() > 0) {
            mDatas.addAll(data);
            notifyDataSetChanged();
        }
    }

    public void addItem(T t) {
        if (t != null) {
            mDatas.add(t);
            notifyDataSetChanged();
        }
    }

}














